package groups.common.dao;

import java.sql.SQLException;
import java.util.Vector;

public interface IDao<Row>{

	//Insercao de tupla. O objeto deve conter todos os campos qu
	public void create(Row row) throws SQLException;

	//Deletar tupla cujo objeto passado por parametro tenha, dentre os campos que possui, coincidencia exata com a tupla
	public void deleteExact(Row row) throws SQLException; 
	
	//Deletar tupla cujo objeto passado por parametro tenha, dentre os campos que possui, pelo menos um campo em comum
	public void deleteAny(Row row) throws SQLException;

	//Retorna os dados completos do usuario com a id referida
	public Row read(Row row) throws SQLException;
	
	//Retorna um vetor com todas as tuplas da tabela
	public Vector<Row> readAll() throws SQLException;
	
	//Atualiza os demais campos da tupla que possua chave primaria em comum com o objeto parametrizado 
	public void update(Row row) throws SQLException;
	
	//Busca tupla cujo objeto passado por parametro tenha, dentre os campos que possui, coincidencia exata com a tupla
	public Row searchExact(Row row) throws SQLException;
	
	//Busca tupla cujo objeto passado por parametro tenha, dentre os campos que possui, pelo menos um campo em comum
	public Row searchAny(Row row) throws SQLException;
	
}
